+++ /dev/null
-#!/bin/sh
-# autopkgtest check
-# (C) 2014 Anton Gladky
-
-set -e
-
-export OMPI_MCA_orte_rsh_agent=/bin/false
-
-WORKDIR=$(mktemp -d)
-trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
-cd $WORKDIR
-mkdir src
-cd src
-
-cat <<EOF > CMakeLists.txt
-cmake_minimum_required(VERSION 2.6)
-project(demo)
-find_package(VTK REQUIRED vtkCommonCore vtkIOImage vtkIOXML vtkRenderingOpenGL vtkIOLegacy)
-include(\${VTK_USE_FILE})
-
-add_executable(demo demo.cpp)
-target_link_libraries(demo \${VTK_LIBRARIES})
-install(TARGETS demo DESTINATION bin)
-
-EOF
-
-cat <<EOF > demo.cpp
-#include <vtkActor.h>
-#include <vtkBridgeDataSet.h>
-#include <vtkCellData.h>
-#include <vtkContourFilter.h>
-#include <vtkDataSetMapper.h>
-#include <vtkDelaunay3D.h>
-#include <vtkElevationFilter.h>
-#include <vtkGenericClip.h>
-#include <vtkImageData.h>
-#include <vtkImplicitDataSet.h>
-#include <vtkIdFilter.h>
-#include <vtkIdTypeArray.h>
-#include <vtkSphereSource.h>
-#include <vtkPolyDataMapper.h>
-#include <vtkProperty.h>
-#include <vtkRenderWindow.h>
-#include <vtkRenderer.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkSampleFunction.h>
-#include <vtkSmartPointer.h>
-#include <vtkPlane.h>
-#include <vtkUnstructuredGrid.h>
-
-int main(int, char**)
-{
-
- vtkSmartPointer<vtkSphereSource> sphereSource =
- vtkSmartPointer<vtkSphereSource>::New();
- sphereSource->SetRadius(5);
- sphereSource->SetThetaResolution(10);
- sphereSource->SetPhiResolution(10);
- sphereSource->Update();
-
- // Add ids to the points and cells of the sphere
- vtkSmartPointer<vtkIdFilter> idFilter =
- vtkSmartPointer<vtkIdFilter>::New();
- idFilter->SetInputConnection(sphereSource->GetOutputPort());
- idFilter->Update();
-
- // Create a plane to clip with
- vtkSmartPointer<vtkPlane> plane = vtkSmartPointer<vtkPlane>::New();
- plane->SetOrigin(0, 0, 0);
- plane->SetNormal(1, 1, 1);
-
- // Convert the DataSet to a GenericDataSet
- vtkSmartPointer<vtkBridgeDataSet> bridgeDataSet = vtkSmartPointer<vtkBridgeDataSet>::New();
- bridgeDataSet->SetDataSet(idFilter->GetOutput());
-
- vtkSmartPointer<vtkGenericClip> clipper =
- vtkSmartPointer<vtkGenericClip>::New();
- clipper->SetClipFunction(plane);
- clipper->SetInputData(bridgeDataSet);
- clipper->Update();
-
- // Get the clipped cell ids
- vtkUnstructuredGrid* clipped = clipper->GetOutput();
- vtkIdTypeArray* originalIds = vtkIdTypeArray::SafeDownCast(clipped->GetCellData()->GetArray("vtkIdFilter_Ids"));
- for(vtkIdType i = 0; i < originalIds->GetNumberOfTuples(); i++)
- {
- std::cout << "new id " << i << ", original id " << originalIds->GetValue(i) << std::endl;
- }
-
- // Create a mapper and actor for clipped points
- vtkSmartPointer<vtkDataSetMapper> mapper =
- vtkSmartPointer<vtkDataSetMapper>::New();
- mapper->SetInputConnection(clipper->GetOutputPort());
- vtkSmartPointer<vtkActor> actor =
- vtkSmartPointer<vtkActor>::New();
- actor->SetMapper(mapper);
-
- // Create a mapper and actor for clipping function
- vtkSmartPointer<vtkSampleFunction> sample =
- vtkSmartPointer<vtkSampleFunction>::New();
- sample->SetSampleDimensions(20,20,20);
- sample->SetImplicitFunction(plane);
- double value = 10.0;
- double xmin = -value, xmax = value, ymin = -value, ymax = value, zmin = -value, zmax = value;
- sample->SetModelBounds(xmin, xmax, ymin, ymax, zmin, zmax);
-
- // Create the 0 isosurface
- vtkSmartPointer<vtkContourFilter> contours =
- vtkSmartPointer<vtkContourFilter>::New();
- contours->SetInputConnection(sample->GetOutputPort());
- contours->GenerateValues(1, 1, 1);
-
- // Map the contours to graphical primitives
- vtkSmartPointer<vtkPolyDataMapper> contourMapper =
- vtkSmartPointer<vtkPolyDataMapper>::New();
- contourMapper->SetInputConnection(contours->GetOutputPort());
- contourMapper->SetScalarRange(0.0, 1.2);
-
- // Create an actor for the sphere
- vtkSmartPointer<vtkActor> sphereActor =
- vtkSmartPointer<vtkActor>::New();
- sphereActor->SetMapper(contourMapper);
-
- // Create a renderer, render window, and interactor
- vtkSmartPointer<vtkRenderer> renderer =
- vtkSmartPointer<vtkRenderer>::New();
- vtkSmartPointer<vtkRenderWindow> renderWindow =
- vtkSmartPointer<vtkRenderWindow>::New();
- renderWindow->AddRenderer(renderer);
- vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
- vtkSmartPointer<vtkRenderWindowInteractor>::New();
- renderWindowInteractor->SetRenderWindow(renderWindow);
-
- // Add the actor to the scene
- renderer->AddActor(actor);
- renderer->AddActor(sphereActor);
- renderer->SetBackground(1,1,1); // Background color white
-
- // Render and interact
- // renderWindow->Render();
- // renderWindowInteractor->Start();
-
- return 0;
-}
-EOF
-
-cd ..
-mkdir build
-cd build
-cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
-make
-make install
-echo "build: OK"
-[ -x demo ]
-./demo
-echo "run: OK"